#include <list>
#include <string>

using namespace std;

int main()
{
    list<string> a = {"Milton", "Shakespeare", "Austen"};
    auto it1 = a.begin();   // list<string>::iterator
    auto it2 = a.rbegin();  // list<string>::reverse_iterator
    auto it3 = a.cbegin();  // list<string>::const_iterator
    auto it4 = a.crbegin(); // list<string>::const_reverse_iterator

    // 显式指定类型
    list<string>::iterator it5 = a.begin();
    list<string>::const_iterator it6 = a.begin();
    // 是 iterator 还是 const_iterator 依赖于 a 的类型
    auto it7 = a.begin();   // 仅当 a 是 const 时，it7 是 const_iterator
    auto it8 = a.cbegin();  // it8 是 const_iterator
}